package com.appkubes.fintech.admin.application.order.entity.vo;

import com.appkubes.fintech.common.request.PageVO;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.*;
import java.util.Date;

import lombok.*;

import com.fasterxml.jackson.annotation.JsonFormat;

/**
 * 还款单
 *
 * @author xqc.
 * @date 2020/01/04 23:48:56
 */
@Data
@ToString(callSuper = true)
public class RentRepayOrderVO extends PageVO {

    @NotBlank(message = "还款单不能为空")
    @ApiModelProperty(name = "还款单", value = "还款单")
    private String repayKey;

    private Integer periodType;

    @NotBlank(message = "用户ID不能为空")
    @ApiModelProperty(name = "用户ID", value = "用户ID")
    private String userKey;

    @NotBlank(message = "还款单号不能为空")
    @ApiModelProperty(name = "还款单号", value = "还款单号")
    private String billKey;

    @NotBlank(message = "还款期数，多个逗号隔开不能为空")
    @ApiModelProperty(name = "还款期数，多个逗号隔开", value = "还款期数，多个逗号隔开")
    private String linePeriods;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @NotNull(message = "支付时间不能为空")
    @ApiModelProperty(name = "支付时间", value = "支付时间")
    private Date payTime;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @NotNull(message = "还款时间不能为空")
    @ApiModelProperty(name = "还款时间", value = "还款时间")
    private Date reapayTime;

    @NotBlank(message = "姓名不能为空")
    @ApiModelProperty(name = "姓名", value = "姓名")
    private String userName;

    @NotBlank(message = "外部通道流水号不能为空")
    @ApiModelProperty(name = "外部通道流水号", value = "外部通道流水号")
    private String payTradeNo;

    @NotNull(message = "还款金额不能为空")
    @ApiModelProperty(name = "还款金额", value = "还款金额")
    private Integer payAmt;

    @NotBlank(message = "还款方式 01支付宝 02微信不能为空")
    @ApiModelProperty(name = "还款方式 01支付宝 02微信", value = "还款方式 01支付宝 02微信")
    private String payType;

    @NotBlank(message = "状态 00未支付 01支付成功 02还款成功 03支付失败 04 还款失败不能为空")
    @ApiModelProperty(name = "状态 00未支付 01支付成功 02还款成功 03支付失败 04 还款失败", value = "状态 00未支付 01支付成功 02还款成功 03支付失败 04 还款失败")
    private String status;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(name = "创建时间", value = "创建时间")
    private Date createTime;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(name = "更新时间", value = "更新时间")
    private Date updateTime;

    @NotBlank(message = "还款返回消息不能为空")
    @ApiModelProperty(name = "还款返回消息", value = "还款返回消息")
    private String retRepayMsg;

    @NotBlank(message = "支付返回的消息不能为空")
    @ApiModelProperty(name = "支付返回的消息", value = "支付返回的消息")
    private String retPayMsg;
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date startDate;
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date endDate;
}
